package com.zxy.supplier_system.server.controller

import com.zxy.supplier_system.server.service.GoodsBrandTagService
import com.zxy.supplier_system.server.utils.IntIdAndName
import org.springframework.http.HttpStatus
import org.springframework.web.bind.annotation.*

@RequestMapping("goodsBrandTags")
@RestController
class GoodsBrandTagController(
    private val goodsBrandTagService: GoodsBrandTagService
) {

    // 获取所有标签
    @GetMapping
    fun getAllTags(): List<IntIdAndName> {
        return goodsBrandTagService.getAllTags()
    }

    // 创建标签
    @PostMapping
    @ResponseStatus(HttpStatus.CREATED)
    fun createTag(@RequestBody createRequest: CreateGoodsBrandTagRequest): Int {
        return goodsBrandTagService.createTag(createRequest)
    }

    // 更新标签
    @PutMapping("{id}")
    fun updateTag(@PathVariable id: Int, @RequestBody updateRequest: UpdateGoodsBrandTagRequest) {
        return goodsBrandTagService.updateTag(id, updateRequest)
    }

    // 删除标签
    @DeleteMapping("{id}")
    @ResponseStatus(HttpStatus.NO_CONTENT)
    fun deleteTag(@PathVariable id: Int) {
        goodsBrandTagService.deleteTag(id)
    }

    // 请求和响应类定义在Controller内部
    data class CreateGoodsBrandTagRequest(
        val name: String
    )

    data class UpdateGoodsBrandTagRequest(
        val name: String
    )

}